YouTube Music レアケース
YouTube Music のデータで何か遊んだりする時にぜひ考慮しておきたいレアケースまとめ
Music Premium が必要なアルバム (YouTube Premium でも可)
MVフォールバックがないパターン
https://music.youtube.com/playlist?list=OLAK5uy_lM3xYtf_7at1hw_YJHoXQLE__onCwcE0E
MVフォールバックがあったりなかったりするパターン
https://music.youtube.com/playlist?list=OLAK5uy_mFVoLBZmq4mpgtczlpENgiwBOQZXoUVF4
MVフォールバックがある・原曲も実は再生できるパターン
Tr.2 Turning Up とか
MVフォールバック: https://youtu.be/PhSdewBIQsc
原曲: https://youtu.be/Vcxr_oYP1m0
MVフォールバックがある・原曲が再生できないパターン
Tr.7 カイト とか
MVフォールバックがない・原曲が再生できないパターン
Tr.1 SHOW TIME とか
これら3つを網羅している
MVフォールバックがあるとしれっと musicResponsiveListItemRenderer.playlistItemData.videoId が入れ替わる!!
MVフォールバックがない時は musicResponsiveListItemRenderer.musicItemRendererDisplayPolicy が MUSIC_ITEM_RENDERER_DISPLAY_POLICY_GREY_OUT になる?
各トラックのfree/premium判定方法を考える
Public API で playlistitems を取る
freeアカウントの Music InnerTube で playlist を取る
同じIDがある かつ musicItemRendererDisplayPolicy が greyout でない時は free track
greyout があった場合
paidアカウントの Music InnerTube で playlist を取る
当該IDがgreyoutではなく存在していたら paid track
それでもgreyoutの場合は unavailable track? (おま国?)
Public API でおま国状態取れるはず
→ これ Music じゃなくて www で取ると下に書いてあるおかしいトラックの判定までできるのでは
と思ったが、結局 unavailable track かどうかがわからんので困る
www にあったら premium, なかったら premium music でリクエストで greyout 判定でよさそう
違うIDがある場合
freeアカウントの www InnerTube で playlist を取る
Public API と同じIDが取れるトラックは free track
取れない場合は paid track
でたぶん正しくなるはず
特定地域だけ Music Premium が必要なアルバム
日記:2022-03-16#6231162f90d79e000094d7e6
Aile to Yell - https://music.youtube.com/playlist?list=OLAK5uy_lXxOLO7A0n-BrtVdM28AE_ddvYuQRnI7U
日本では動画ID MOl5w-RVRd0 (Music Premium が必要) https://youtu.be/MOl5w-RVRd0
それ以外では ZdLUlQFn_oU (Music Premium 必要なし) https://youtu.be/ZdLUlQFn_oU
YouTube Data API でプレイリストを引いても後者しか貰えない
https://developers.google.com/youtube/v3/docs/playlistItems/list?apix_params={"part"%3A%5B"contentDetails"%2C"snippet"%5D%2C"maxResults"%3A100%2C"playlistId"%3A"OLAK5uy_lXxOLO7A0n-BrtVdM28AE_ddvYuQRnI7U"}#実際に試してみる
InnerTube でアルバムを引いても Music Premium に入っているアカウントで認証していないと動画IDが取れない
日本でかつMusic Premium に入っていない状態だとそもそも↑のプレイリストが見れない
認証なしで日本用動画IDを取る方法募集中です
よくよく考えると YouTube Data API のバグっぽいし報告した https://issuetracker.google.com/issues/227646699
2025-06-29追記
更に壊れてた
Public APIでは https://youtu.be/MOl5w-RVRd0 が帰ってくる
wwwのプレイリストページが壊れている (無料でもPremiumでも)
https://www.youtube.com/playlist?list=OLAK5uy_lXxOLO7A0n-BrtVdM28AE_ddvYuQRnI7U
https://gyazo.com/16d5159cba3f46b5f523f31c3b11ab56
Music Premium じゃなくても再生できるようになってた (???)
wwwでもmusicでも
でもmusicで聞くとなんか下のバーが出なくなる
これとMVフォールバックが組み合わさると free or not 判定ができなくなる?
MVフォールバック付き: https://music.youtube.com/playlist?list=OLAK5uy_mtMWWDxTzDgTX_SkQ-RreWqpqGC2SS3j0
free, music → MVフォールバック
premium, music → 正規ID
free, www → unavailable
premium, www → unavailable
となった時に free で視聴できるかどうかが watch 呼ばないと判定不可能
OAuthセッション持っていいならやりようがあることに気付いた
判定したい曲を自作プレイリストに入れる
free環境で当該プレイリストをwwwで見る
一部トラックが Premium でも unavailable
https://music.youtube.com/playlist?list=OLAK5uy_nWS9Go5IF5kuhgBnb5DJcGn_VtLJ4SKsE
クライアント上だと見た目が(アーティスト名 - Topic ではなく)アーティストの公式チャンネルになる曲
例: fhána https://www.youtube.com/watch?v=xiCdLC6bWU4
Webだと投稿者が https://www.youtube.com/channel/UC1aOxPe_LKL6GvK-nwaTO6Q になる
fhána Official Channel
YouTube Data API 上の投稿者は https://www.youtube.com/channel/UC3eB6Tr5w4FdZ0RxBwebNTA
fhána - トピック
InnerTube だと player の playerConfig.webPlayerConfig.webPlayerActionsPorting.subscribeCommand.subscribeEndpoint.channelIds あたりから取れる?
YouTube Music でしかタイトルが日本語にならない曲
YouTube Music: セカイ (Live) https://music.youtube.com/watch?v=hGZ48pnQCZk
YouTube: Sekai (Live) https://www.youtube.com/watch?v=hGZ48pnQCZk
YouTube Data API v3 で hl=ja 付けてもだめ https://developers.google.com/youtube/v3/docs/videos/list?apix_params={"part"%3A%5B"snippet"%5D%2C"hl"%3A"ja"%2C"id"%3A%5B"hGZ48pnQCZk"%5D}
逆に、YouTube 上では日本語なのにYouTube Music だと英語になる曲
YouTube Music: fluctuation(feat. Hatsune Miku) https://music.youtube.com/watch?v=PFC9ZFtk7M0
YouTube: ゆらぎ (feat. Hatsune Miku) https://www.youtube.com/watch?v=PFC9ZFtk7M0
そこまでレアではない: アーティスト名がリンクにならない(≒アーティストのチャンネルがない)動画
https://music.youtube.com/watch?v=GJv1F4SXRNs
複数人だからリンクになっていないように思えるが…
複数人でも1チャンネルになっている例 https://music.youtube.com/watch?v=1vhVKk5tx3s
一人だがチャンネルがない例 https://music.youtube.com/watch?v=zb94ygyfJ-I
などがある
激レア: アルバムがリンクにならない
パリピ孔明の気分上々↑↑カバーがリリース当初そうだった
今は直った
/browse/:id から /playlist?list=... への解決はリージョンロックで中身が見れない地域からだとできない
日本だと
https://gyazo.com/1a983768e6fd5bbea21957e964878eb8
海外だと
https://gyazo.com/0c12d10da4ca454636ee22f854fd552e
https://music.youtube.com/browse/MPREb_cNsXTLePwsd
困っている!誰か解決方法教えてください
1アルバムに対して複数のプレイリストが存在することがある?
例を紛失してしまった
基本は限定公開のプレイリストがあるが、それに加えて公開のプレイリストがあることがあったはず
YouTube内検索に載せるため?
↓の手段で統一できる
ところで /playlist?list=... から /browse/:id に戻すには?
Web版にはそういうAPIはない
アクセスして謎のJSONを読めば貰えるが…?
よろしい ならばアプリだ
というわけで /youtubei/v1/navigation/resolve_url に {url: "https://music.youtube.com/playlist?list=..."} を渡すと endpoint.browseEndpoint.browseId が貰える!
これを browse すると真プレイリストIDが貰える
ただし上記の通りリージョンロックに影響される
「他のバージョン」は <link rel=canonical> っぽい動きをする
Eutopia / EMOTION / stars we chase の 鐘嵐珠盤の配信上のUPCは 195533006299 である
https://open.spotify.com/search/upc%3A195533006299
が、これを検索に投げると https://music.youtube.com/search?q="195533006299"
三船栞子盤が出てくる https://music.youtube.com/playlist?list=OLAK5uy_mlzC0kPEsWKbXja0vWR_E75D4VZycuf1Q
他のバージョンに鐘嵐珠盤が出てくる https://music.youtube.com/playlist?list=OLAK5uy_m_c2orq7P9EWO7nLIWVmT7jbqq-xN-Q0g
ちなみに: 別に入れ替わっているというわけではない
三船栞子盤のUPCは 195533006305 である
https://open.spotify.com/search/upc%3A195533006305
それを検索すると https://music.youtube.com/search?q="195533006305"
三船栞子盤が出てくる (正しい)